package 代码记录.指定公司代码练习记录.华为_2024.分值100.第36start;

import java.util.*;

/**
 * @author zx
 * @create 2024-02-16 13:16
 * 这里的排序写法比较特殊,自己学会，代码可以看懂
 */
public class 第k长子串_58 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine(); //读取输入的字符串
        int k = sc.nextInt(); //读取输入的整数
        HashMap<Character, Integer> map = new HashMap<>();//创建一个HashMap，用于存储每个字符出现的最大次数
        char[] chars = str.toCharArray(); //将字符串转换为字符数组
        char cur = chars[0]; //初始化当前字符为字符数组的第一个字符
        int count = 1; //初始化当前字符出现的次数为1
        map.put(cur, count); //将当前字符和出现的次数存入HashMap中
        for (int i = 1; i < chars.length; i++) { //遍历字符数组
            if (chars[i] == cur)
                count++; //如果当前字符和上一个字符相同，当前字符出现的次数加1
            else { //如果当前字符和上一个字符不同
                cur = chars[i]; //更新当前字符为当前字符
                count = 1; //重置当前字符出现的次数为1
            }
            // 将当前字符和出现的次数存入HashMap中
            if (map.containsKey(cur)) {
                if (map.get(cur) > count) {
                    map.put(cur, map.get(cur));
                } else {
                    map.put(cur, count);
                }
            } else {
                map.put(cur, count);
            }
        }

        List<String> list = new ArrayList<>(); // 创建一个List，用于存储每个字符和出现的最大次数
        map.forEach((key, value) -> list.add(key + "-" + value)); // 将HashMap中的每个键值对转换为字符串并存入List中
        //这里的这种排序方式自己不会，学习一下
        list.sort(Comparator.comparingInt(o -> -Integer.parseInt(o.split("-")[1])));//按出现的最大次数从大到小排序
        if (k > list.size()) {
            System.out.println(-1);
        } else {
            System.out.println(list.get(k - 1).split("-")[1]);
        }
    }
}
